@echo off & setlocal EnableDelayedExpansion
title PDMMain服务

rem 第一步。获取CMD管理员权限
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 当前脚本运行路径为：%CD%
echo 已获取管理员权限

rem 第二步。杀掉之前的端口进程
set obj[0]=8083
::set obj[1]=8084
::set obj[2]=8085

set port=0
set pid=0

for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (
    set port=%%b
    for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (
        set pid=%%m
    )
    if "!pid!"=="0" (
        echo port !port! not exist
    ) else (
        echo port !port! exist, kill it.
        taskkill /f /pid !pid!
    )
    set pid=0
)

rem 第三步。重新指定运行环境，如果有必要的
rem set JAVA_HOME={JDK所在目录}\Java\jdk1.8.0_172
rem set PATH=%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;%PATH%
rem set CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

rem 第四步。带参数指定启动程序
@echo on
::-Xms2048m -Xmx4096m 指定最大内存数量4096m、最小内存数量2048m。可手动分配
::-Dfile.encoding=UTF-8 指定系统字符集编码格式为utf8
::start.log 2>&1 程序的启动日志会记录到start.log中。程序的运行日志会记录到对应的logs目录中
java -Xms2048m -Xmx4096m  -Dfile.encoding=UTF-8 -jar javapdm-main-x.x.x.jar >start.log 2>&1
